<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // const people = {
    //     name:"张三",
    //     sex:"男",
    //     age:23,
    //     sayHello(){
    //         console.log("hello")
    //     }
    // }

    // 根据将来的类，抽象出公共的接口规范
    const peopleInterface = {
        sayHello(){
            console.log("hello, my name is " + this.name)
        }
    }

    // 抽象出xx类
    function createPeople(name, age, sex){
        // 原料
        const p = {};
        // 加工
        p.name = name;
        p.age = age;
        p.sex = sex;
        p.sayHello = peopleInterface.sayHello;
        // 出厂
        return p;
    }

    // 根据xx类，创建对象
    const p1 = createPeople("张三", 19, "男")
    const p2 = createPeople("李四", 23, "女")
    // 查看对象
    console.log(p1)
    console.log(p2)
    // 使用对象
    p1.sayHello()
    p2.sayHello()

    // 检测来自于同一个类的每个对象的功能是否一致
    console.log(p1.sayHello === p2.sayHello);


    // 工厂模式：每次执行，都会得到一个新的实例，但是实例具有相同的属性不同的值，相同的功能

    // 三大特点：原料，加工，出厂

    // 以上工厂模式已被迭代
</script>
</html>